const fs = require('fs')

const args = {
	'-h': displayHelp,
	'-r': readFile,
}

function displayHelp() {
	console.log('Argument processor', args)
}

function readFile(file) {
	if (file && file.length) {
		fs.createReadStream(file).pipe(process.stdout)
	} else {
		console.error('A file must be provide with the -r option')
		/**
		 * 执行脚本  node '.\2-process.exit().js' -r  不提供 -r 具体的内容 使程序退出
		 *
		 * 设置程序错误时的 退出码
		 *  node允许在程序退出的时候给个退出码
		 *  当一个程序非常大的时候 这个退出码就是非常的重要的  可用于排查
		 *
		 *  退出码 除了0以外 都表示有错误发生
		 */
		process.exit(1)
	}
}

if (process.argv.length > 0) {
	process.argv.forEach(function (arg, index) {
		console.log('arg', process.argv, arg, index)
		if (arg === '-r') {
			// 通过打印arg 可以知道 -r 后面跟的就是我们传的参数 在这里也就是  .\arguments.js 这个文件名称 这个参数
			args[arg].apply(this, process.argv.slice(index + 1))
		}
	})
}
